﻿using System.Windows.Media;
using C1.Silverlight.Pdf;
using MyFloridaHouse.libSvUtilities.CustomColors;

namespace MyFloridaHouse.libSvOpenDistricts.PDF
{
    public static class HouseMapPens
    {
        // note: When drawing shapes that are lines, the highlight pen is drawn first, then the border pen is drawn
        // this gives you a line made up of the highlight-border-highlight colors (width wise)
        // The width of the highlights showing on each side will be (highlightThickness-borderThickness)/2
        // so your highlight should ALWAYS be thicker than your border

        public static Pen borderPen = new Pen(Colors.Black, 1.5);
        public static Pen houseMapOutlinePen = new Pen(Colors.Black, .75);

        public static Color districtBoundaryHighlightColor = Colors.Transparent;
        public static Color districtBoundaryBorderColor = Colors.Black;
        public static double districtBoundaryBorderThickness = 1;
        //public static Color districtLabelColor = Colors.Red;
        //public static Color districtLabelColor = RGB.GetColorFromHex(1, "800000");  // Marroon
        public static Color districtLabelColor = RGB.GetColorFromHex(1, "B22222");  // Firebrick
        public static int districtLabelPadding = 2;

        // county
        public static Color countyBoundaryHighlightColor = Colors.Transparent;
        public static Color countyBoundaryBorderColor = Colors.Gray;

        public static double countyBoundaryBorderThickness = 1;
        public static double countyBoundaryHighlightThickness = 1;

        public static Pen countyBoundaryBorderPen = new Pen(countyBoundaryBorderColor, countyBoundaryBorderThickness);
        public static Pen countyBoundaryBorderHighlightPen = new Pen(countyBoundaryBorderColor, countyBoundaryHighlightThickness);

        public static Pen countyBoundaryBorderFillPen = new Pen(Colors.Transparent); // county polygons are drawn, but no fill

        public static Color countyLabelColor = Colors.Gray;
        public static int countyLabelPadding = 2;

        // Interstate
        public static Color interstateBoundaryBorderColor = Colors.Yellow;
        public static Color interstateBoundaryBorderHighlightColor = Colors.Gray;

        public static double interstateBoundaryBorderThickness = .9;
        public static double interstateBoundaryBorderHighlightThickness = 2;

        public static Pen interstateBoundaryBorderPen = new Pen(interstateBoundaryBorderColor, interstateBoundaryBorderThickness);
        public static Pen interstateBoundaryBorderHighlightPen = new Pen(interstateBoundaryBorderHighlightColor, interstateBoundaryBorderHighlightThickness);

        public static Color interstateBoundaryLabelColor = Colors.Transparent;

        // major highway
        public static Color majorHighwayBoundaryBorderColor = Colors.Red;
        public static Color majorHighwayBoundaryBorderHighlightColor = Colors.Gray;

        public static double majorHighwayBoundaryBorderThickness = .1;
        public static double majorHighwayBoundaryBorderHighlightThickness = .2;

        public static Pen majorHighwayBoundaryBorderPen = new Pen(majorHighwayBoundaryBorderColor, majorHighwayBoundaryBorderThickness);
        public static Pen majorHighwayBoundaryBorderHighlightPen = new Pen(majorHighwayBoundaryBorderHighlightColor, majorHighwayBoundaryBorderHighlightThickness);

        public static Color majorHighwayLabelColor = Colors.Transparent;

        // shorelines
        public static Color shorelineBoundaryBorderColor = RGB.GetColorFromHex(1, "00BFFF");  // DeepSkyBlue
        public static Color shorelineBoundaryHighlightColor = Colors.Transparent;

        public static double shorelineBoundaryBorderThickness = .15;
        public static double shorelineBoundaryBorderHighlightThickness = .4;

        public static Pen shorelineBoundaryBorderPen = new Pen(shorelineBoundaryBorderColor, shorelineBoundaryBorderThickness);
        public static Pen shorelineBoundaryHighlightPen = new Pen(shorelineBoundaryHighlightColor, shorelineBoundaryBorderHighlightThickness);

        public static Color shorelineLabelColor = Colors.Transparent;



    }
}
